import PubSub from 'pubsub-js';
import request from '../../../Utils/request';
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		day: '', // 天
		month: '', // 月
		recommendList: '', // 推荐列表数据
		index: 0, // 歌曲对应下标
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		// 判断用户是否登录
		let userInfo = wx.getStorageSync('userInfo');
		if (!userInfo) {
			wx.showToast({
				title: '请先登录',
				icon: 'none',
				success: function () {
					// 跳转到登录页面
					wx.reLaunch({
						url: '/pages/login/login',
					});
				},
			});
		}

		// 更新日期的状态数据
		this.setData({
			day: new Date().getDate(),
			month: new Date().getMonth() + 1,
		});
		// 获取每日推荐
		this.getRecommendList();
		// 订阅来自 songDetail 发布的消息
		PubSub.subscribe('switchType', (msg, type) => {
			let { recommendList, index } = this.data;
			// 函数体
			if (type === 'pre') {
				index === 0 && (index = recommendList.length);
				// 上一首
				index -= 1;
			} else {
				index === recommendList.length - 1 && (index = -1);
				// 下一首
				index += 1;
			}
			// 更新下标
			this.setData({
				index,
			});
			let musicId = recommendList[index].id;
			// 将 musicId 回传给 songDetail 页面
			PubSub.publish('musicId', musicId);
		});
	},
	// 获取每日推荐的数据
	async getRecommendList() {
		// 获取每日推荐的数据
		let recommendListdData = await request('/recommend/songs');
		this.setData({
			recommendList: recommendListdData.recommend,
		});
	},

	// 跳转toSongDetail
	toSongDetail(event) {
		// let song = event.currentTarget.dataset.song;
		// let index = event.currentTarget.dataset.index;
		let { song, index } = event.currentTarget.dataset;
		this.setData({
			index,
		});
		// 路由跳转传参：query参数
		wx.navigateTo({
			// 不能直接传song对象 数据太大 会被截取
			// url: '/pages/songDetail/songDetail?song=' + JSON.stringify(song),
			url: '/songPackage/pages/songDetail/songDetail?musicId=' + song.id,
		});
	},
	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {},
});
